const colorMap = {
    bright: '1', // 亮色
    grey: '2', // 灰色
    italic: '3', // 斜体
    underline: '4', // 下划线
    reverse: '7', // 反向
    hidden: '8', // 隐藏
    black: '30', // 黑色
    red: '31', // 红色
    green: '32', // 绿色
    yellow: '33', // 黄色
    blue: '34', // 蓝色
    magenta: '35', // 品红
    cyan: '36', // 青色
    white: '37', // 白色
    blackBG: '40', // 背景色为黑色
    redBG: '41', // 背景色为红色
    greenBG: '42', // 背景色为绿色
    yellowBG: '43', // 背景色为黄色
    blueBG: '44', // 背景色为蓝色
    magentaBG: '45', // 背景色为品红
    cyanBG: '46', // 背景色为青色
    whiteBG: '47', // 背景色为白色
    success: '32', // 绿色
    error: '31', // 红色
  }
  class Chalk {
    constructor() {
      const _this = this
      const keys = Object.keys(colorMap)
      _this.format = {}
      keys.forEach((item) => {
        // 将文本格式化成对应颜色 方便局部变色/;
         _this.format[item]=function (str){
          return _this.befforeTitle(colorMap[item]) + str + _this.afterTitle()
         }
        //  直接输出全部变色的输出;
        _this[item] = function (str) {
            return _this.befforeTitle(colorMap[item]) + str + _this.afterTitle()
        }
      })
    }
    befforeTitle(type = '35') {
      return `\x1B[${type}m`
    }
    afterTitle() {
      return '\x1B[0m'
    }
  }
  const chalk = new Chalk()
  module.exports = chalk